;
;	������������ ���������� ������� ���������
;	-----------------------------------------
;
Dispatcher:
.M1:    call	Clear_screen		;������� ������
	call	Read_sector		;��������� ������
	call	Disp_sector		;����� ������� � ���������� �������
	Out_str	Invitation              ;����� �����������
	call	Send_crlf		;������� ������
	call	Read_byte		;���� �������
	cmp	al,0			;������ �����������?
	jne	.M3			;���, ����� ������ ������� 
	cmp	ah,44h			;������� F10?
	jne	.M2                     ;���, ��������� �������
	call    Clear_screen            ;������� �����
	stc				;CF <- 1
	jmp	.Exit                   ;�����
.M2:	call	Command	                ;��������� �������
.M3:	clc				;CF <- 0
.Exit:	jnc	.M1                     ;��������� ������
	ret
Invitation	db	'Enter command: $'
;
;	������������� ������
;	--------------------
; �����: AH - ����-���, ��������������� �������
; ������: .Table - ������� ���������
;
Command:
	push	ax
	push	bx
	push	cx
	push	dx
	push	ds
; "��������" ������������ �������� ���� � �������� ������� ������
	mov	bx,code
	mov	ds,bx
; ����� � ������� ����� ����� ����������� ���������
	mov	bx,.Table		;BX <- �����-�������� �������
.M1:	cmp	byte[bx],0ffh		;����� �������?
	je	.Exit			;��, ���� ��� � �������
	cmp	ah,[bx]			;��� ���� � �������?
	je	.Dispatch		;��, ��������� �������
	add	bx,3			;���, ������� �
	clc				; ����������
	jmp	.M2			; �������� �������
; ���������� ������� ��������� ������ ��������������� ���������
.Dispatch:
	push	bx
	inc	bx			;� BX �����-�������� ����� �����
	mov	dx,bx			;DX <- BX
	mov	bx,Blocpar		;BX <- �����-�������� ����� ����������
	mov	ax,4b00h		;AX <- ����� ������� � ����������
	int	21h			;������ �������� ���������
	pop	bx

	cmp	byte[bx],3eh
	jne	.Exit
	call	Write_sector
	
	jnc	.Exit			;���� ������ ��������
	mov	dx,.ProgLaunchErr	;���������
	mov	ah,09h			; �� ������
	int	21h			; �������
.Exit:	stc				;CF <- 1
.M2:	jnc	.M1			;���������� ��� ������ �������� �������
	pop	ds
	pop	dx
	pop	cx
	pop	bx
	pop	ax
	ret				;
.ProgLaunchErr	db	cr,lf,'Program launch error',cr,lf,'$'
; ������� �������� ����-���� ����������� ������ � ������
; ��������, ����������� ��������������� �������
.Table	db	3bh			;<F1>
	dw	'Init_sec.exe',0
	db	3dh			;<F3>
	dw	'Next_sec.exe',0
	db	3eh			;<F4>
	dw	'Edit_sec.exe',0
	db	3fh			;<F5> 
	dw	'Prev_sec.exe',0
	db	40h			;<F6>
	dw	'N_sector.exe',0
	db	0ffh			;����� �������
